# -*- coding: utf-8 -*-
import numpy as np
import numpy.matlib

print u'单位矩阵：',np.eye(3, dtype='int')
v = np.array([1,2,3])
d = np.diag(v)
print u'对角矩阵：',d
print u'对角线元素',np.diag(d)
print u'范数',np.linalg.norm(v)
a = np.array([[1.,2.],[3.,4.]])
b = np.array([[1,1],[0,1]])

print u'转置：',a.transpose()
print u'迹：',np.trace(a)
print u'迹：',a.trace()
print u'行列式：',np.linalg.det(a)
print u'特征值和特征向量：',np.linalg.eig(a) #特征值和特征向量
print u'矩阵乘法：',np.dot(a,b) #矩阵乘法
#解方程组
y = np.array([[5.],[7,]])
print u'解方程组：',np.linalg.solve(a,y)
#linalg更多函数见http://docs.scipy.org/doc/numpy/reference/routines.linalg.html

#矩阵类继承自2维数组
A = np.mat(a)
print u'转置：',A.T
print u'逆：',A.I
X = np.matrix('5 6; 7 8').T
print u'矩阵乘法：',A*X
print u'矩阵切片：',A[:,1] #跟数组不一样,这里切片的结果还是矩阵
print u'单位矩阵：',numpy.matlib.identity(3,dtype=int) #单位阵
